package ar.edu.utn.frgp.banco.servlets;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.banco.domain.Movimientos;
import ar.edu.utn.frgp.banco.domain.PlazoFijo;

import ar.edu.utn.frgp.banco.service.RecursoServiceCuenta;
import ar.edu.utn.frgp.banco.service.RecursoServiceMovimientos;
import ar.edu.utn.frgp.banco.service.RecursoServicePlazoFijo;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceCuentaImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceMovimientosImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServicePlazoFijoImpl;
/**
 * Servlet implementation class ServicioVerificarCliente
 */
public class PlazoFijoLiquidarServlet extends GenericServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public PlazoFijoLiquidarServlet() {
        // TODO Auto-generated constructor stub
    }

	@Override
	public void realizarAccion(HttpServletRequest req, HttpServletResponse resp) throws Exception {

		
		
		String liquidarpf = (String)req.getParameter("cmbliquidar");
		
		int nroPlazoFijo = Integer.parseInt(liquidarpf); 
		
		
		PlazoFijo plazofijo = new PlazoFijo();
		
		Cuenta cudestino = new Cuenta ();

		RecursoServicePlazoFijo servicePlazoFijo = new RecursoServicePlazoFijoImpl();
		RecursoServiceCuenta serviceCuenta = new RecursoServiceCuentaImpl();
		
		Movimientos regMovimiento = new Movimientos();
 		RecursoServiceMovimientos serviceMovimientos = new RecursoServiceMovimientosImpl();
 		
		
		String jsp = "";

		
			plazofijo = servicePlazoFijo.listarPlazosFijosCodigo(nroPlazoFijo); //con estos datos armar la cuota
	
		servicePlazoFijo.dasactivarPlazosFijos(plazofijo.getIdplazofijo());

		
		cudestino = serviceCuenta.buscarCuenta(plazofijo.getNrocuentadestino()); //busco y traigo la cuenta de la cual se va a debitar el monto
							
		cudestino.setSaldo(cudestino.getSaldo()+ (plazofijo.getMonto()*plazofijo.getInteres()/100)+plazofijo.getMonto() );// modifico el saldo de esa cuenta (saldo de la cuenta - monto fijo del servicio)
		serviceCuenta.modificarSaldoCuenta(cudestino);/// le mando a modificar saldo cuenta la cuenta con el saldo modificado
											
		regMovimiento.cargarMovimiento(plazofijo.getNrocuentadestino(), 2, 5, cudestino.getSaldo(),(plazofijo.getMonto()*plazofijo.getInteres()/100)+plazofijo.getMonto());
		serviceMovimientos.registrarMovimiento(regMovimiento);
		
		jsp = "menuplazofijo.jsp";

		req.getRequestDispatcher(jsp).forward(req, resp);
			
	   }
	}


